From: Jeroen van der Heijden Date: Sat, 6 Oct 2018 08:05:27 +0000 (+0200) Subject: Implement alpha versioning X-Git-Tag: archive/raspbian/2.0.44-1+rpi1~1^2~3^2~8^2~29 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=97019e19d6c22063a0c146fc5f2b817a2efa56ad;p=siridb-server.git Implement alpha versioning --- diff --git a/include/siri/siri.h b/include/siri/siri.h index ece3af80..9f947d1c 100644 --- a/include/siri/siri.h +++ b/include/siri/siri.h @@ -15,7 +15,6 @@ #define PCRE2_CODE_UNIT_WIDTH 8 #define SIRI_MAX_SIZE_ERR_MSG 1024 -#define SIRIDB_BUILD_DATE __DATE__ " " __TIME__ #define MAX_NUMBER_DB 4 typedef enum diff --git a/include/siri/version.h b/include/siri/version.h index d255e6ea..70219b92 100644 --- a/include/siri/version.h +++ b/include/siri/version.h @@ -16,19 +16,36 @@ #define SIRIDB_VERSION_MINOR 0 #define SIRIDB_VERSION_PATCH 30 +/* + * Use SIRIDB_VERSION_PRE_RELEASE for alpha release versions. + * This should be an empty string when building a final release. + * Examples: "-alpha-0" "-alpha-1", "" + */ +#define SIRIDB_VERSION_PRE_RELEASE "-alpha-0" + +#if DEBUG +#define SIRIDB_VERSION_BUILD_RELEASE "+debug" +#else +#define SIRIDB_VERSION_BUILD_RELEASE "" +#endif + #define SIRIDB_STRINGIFY(num) #num #define SIRIDB_VERSION_STR(major,minor,patch) \ SIRIDB_STRINGIFY(major) "." \ SIRIDB_STRINGIFY(minor) "." \ SIRIDB_STRINGIFY(patch) -#define SIRIDB_VERSION SIRIDB_VERSION_STR( \ - SIRIDB_VERSION_MAJOR, \ - SIRIDB_VERSION_MINOR, \ - SIRIDB_VERSION_PATCH) +#define SIRIDB_VERSION SIRIDB_VERSION_STR( \ + SIRIDB_VERSION_MAJOR, \ + SIRIDB_VERSION_MINOR, \ + SIRIDB_VERSION_PATCH) \ + SIRIDB_VERSION_PRE_RELEASE \ + SIRIDB_VERSION_BUILD_RELEASE -#define SIRIDB_MAINTAINER "Jeroen van der Heijden " -#define SIRIDB_HOME_PAGE "http://siridb.net" +#define SIRIDB_CONTRIBUTERS \ + "https://github.com/SiriDB/siridb-server/contributors" +#define SIRIDB_HOME_PAGE \ + "https://siridb.net" int siri_version_cmp(const char * version_a, const char * version_b); diff --git a/main.c b/main.c index d6a99d7d..4e9940f2 100644 --- a/main.c +++ b/main.c @@ -49,15 +49,9 @@ int main(int argc, char * argv[]) /* initialize points dictionary */ siridb_points_init(); -#if DEBUG - log_warning("Starting SiriDB Server (%s-DEBUG-RELEASE-%s)", - SIRIDB_VERSION, - SIRIDB_BUILD_DATE); -#else - /* start server */ log_info("Starting SiriDB Server (version: %s)", SIRIDB_VERSION); -#endif + /* initialize SiriDB mutex (used for the siridb_list) */ if (uv_mutex_init(&siri.siridb_mutex)) { diff --git a/src/siri/admin/request.c b/src/siri/admin/request.c index 9f094bc1..aa4af3b3 100644 --- a/src/siri/admin/request.c +++ b/src/siri/admin/request.c @@ -838,12 +838,8 @@ static cproto_server_t ADMIN_on_get_version( { if (!qp_add_type(packer, QP_ARRAY_OPEN) && !qp_add_string(packer, SIRIDB_VERSION) && -#if DEBUG - !qp_add_string(packer, "DEBUG") && -#else - !qp_add_string(packer, "RELEASE") && -#endif - !qp_add_string(packer, SIRIDB_BUILD_DATE)) + !qp_add_string(packer, SIRIDB_VERSION_PRE_RELEASE) && + !qp_add_string(packer, SIRIDB_VERSION_BUILD_RELEASE)) { *packaddr = packer; return CPROTO_ACK_ADMIN_DATA; diff --git a/src/siri/args/args.c b/src/siri/args/args.c index 32afd4a1..5ab0b14d 100644 --- a/src/siri/args/args.c +++ b/src/siri/args/args.c @@ -88,17 +88,13 @@ void siri_args_parse(siri_t * siri, int argc, char *argv[]) if (siri_args.version) { printf( - "SiriDB Server %s\n" - "Build date: %s\n" - "Maintainer: %s\n" + "SiriDB Server %s%s%s\n" + "Contributers: %s\n" "Home-page: %s\n", -#ifndef DEBUG SIRIDB_VERSION, -#else - SIRIDB_VERSION "-DEBUG-RELEASE", -#endif - SIRIDB_BUILD_DATE, - SIRIDB_MAINTAINER, + SIRIDB_VERSION_PRE_RELEASE, + SIRIDB_VERSION_BUILD_RELEASE, + SIRIDB_CONTRIBUTERS, SIRIDB_HOME_PAGE); exit(EXIT_SUCCESS); diff --git a/src/siri/siri.c b/src/siri/siri.c index 5e3fff77..8db933fb 100644 --- a/src/siri/siri.c +++ b/src/siri/siri.c @@ -330,13 +330,7 @@ next: static void SIRI_destroy(void) { -#ifndef DEBUG - log_info("Closing SiriDB Server (version: %s)", SIRIDB_VERSION); -#else - log_warning("Closing SiriDB Server (%s-DEBUG-RELEASE-%s)", - SIRIDB_VERSION, - SIRIDB_BUILD_DATE); -#endif + log_warning("Closing SiriDB Server (version: %s)", SIRIDB_VERSION); /* stop the event loop */ uv_stop(siri.loop); diff --git a/src/siri/version.c b/src/siri/version.c index e9386df5..ff6c2f61 100644 --- a/src/siri/version.c +++ b/src/siri/version.c @@ -17,11 +17,12 @@ int siri_version_cmp(const char * version_a, const char * version_b) { long int a, b; + int i = 3; char * str_a = (char *) version_a; char * str_b = (char *) version_b; - while (1) + while (i--) { a = strtol(str_a, &str_a, 10); b = strtol(str_b, &str_b, 10); @@ -30,23 +31,13 @@ int siri_version_cmp(const char * version_a, const char * version_b) { return a - b; } - else if (!*str_a && !*str_b) + else if (!*str_a || !*str_b) { return 0; } - else if (!*str_a) - { - return -1; - } - else if (!*str_b) - { - return 1; - } str_a++; str_b++; } - /* we should NEVER get here */ - assert(0); return 0; } diff --git a/test/test_version/test_version.c b/test/test_version/test_version.c index 85552d29..95569e25 100644 --- a/test/test_version/test_version.c +++ b/test/test_version/test_version.c @@ -2,22 +2,77 @@ #include +#include +#include + +int old_version_cmp(const char * version_a, const char * version_b) +{ + long int a, b; + + char * str_a = (char *) version_a; + char * str_b = (char *) version_b; + + while (1) + { + a = strtol(str_a, &str_a, 10); + b = strtol(str_b, &str_b, 10); + + printf("%ld - %ld\n", a, b); + + if (a != b) + { + return a - b; + } + else if (!*str_a && !*str_b) + { + return 0; + } + else if (!*str_a) + { + return -1; + } + else if (!*str_b) + { + return 1; + } + str_a++; + str_b++; + } + + /* we should NEVER get here */ + _assert (0); + return 0; +} + + int main() { test_start("version"); + /* alpha verioning should be ignored by version compare */ _assert (siri_version_cmp("1.0.0", "2.0.0") < 0); + _assert (siri_version_cmp("1.0.0", "2.0.0-alpha-0") < 0); + _assert (siri_version_cmp("2.0.0", "1.0.0") > 0); _assert (siri_version_cmp("2.0.0", "1.0.0") > 0); _assert (siri_version_cmp("2.2.0", "2.32.0") < 0); _assert (siri_version_cmp("2.32.0", "2.2.0") > 0); _assert (siri_version_cmp("2.0.5", "2.0.22") < 0); _assert (siri_version_cmp("2.0.22", "2.0.5") > 0); - _assert (siri_version_cmp("2.0", "2.0.0") < 0); - _assert (siri_version_cmp("2.0.2", "2.0") > 0); - _assert (siri_version_cmp("a", "") > 0); - _assert (siri_version_cmp("", "b") < 0); + _assert (siri_version_cmp("2.0.5-alpha-0", "2.0.22") < 0); + _assert (siri_version_cmp("2.0.22-alpha-0", "2.0.5") > 0); + _assert (siri_version_cmp("a", "") == 0); + _assert (siri_version_cmp("", "b") == 0); _assert (siri_version_cmp("", "") == 0); - _assert (siri_version_cmp("2.0.0", "2.0.0") == 0); + _assert (siri_version_cmp("2.0.30", "2.0.30") == 0); + _assert (siri_version_cmp("2.0.30-alpha-1-debug", "2.0.30") == 0); + _assert (siri_version_cmp("2.0.30-alpha-1", "2.0.30-alpha-0") == 0); + + /* old version compare function should not break with -alpha versions */ + _assert (old_version_cmp("2.0.5-alpha-0", "2.0.22") < 0); + _assert (old_version_cmp("2.0.22-alpha-0", "2.0.5") > 0); + _assert (old_version_cmp("2.0.30-alpha-1-debug", "2.0.30") > 0); + /* This last one is < 0 since -1 < -0 */ + _assert (old_version_cmp("2.0.30-alpha-1", "2.0.30-alpha-0") < 0); return test_end(); }